Grosse base de données et performances
Bonjour
Question de noob en grosses bases de données…
Admettons une base avec une table de 1 500 000 enregistrements de 30 ko chacun (il est possible qu’à l’avenir cela soit multiplié par 10). Les PC clients doivent se connecter dessus périodiquement pour chercher des enregistrements à traiter, par exemple 1000 enregistrements non traités. Quand ils font cela, ils marquent l’enregistrement comme en traitement, avec la date et l’heure de début. Quand ils ont fini de traiter leurs 1000 enregistrements, ils les mettent à jour dans la base centrale puis en redemandent 1000, jusqu’à ce que la totalité des documents soient traités.
Sachant que 30 clients peuvent travailler en même temps, que les clients ne doivent jamais être interrompus parce que le serveur ne suit plus, et que les clients traitent environ trois enregistrements par secondes, cela nous fait 30 connections qui peuvent être simultanées, et que le serveur envoie grosso modo 90 enregistrement par secondes en moyenne, 3 par 3 sur vers chaque client (en moyenne).
Alors voici ma question de débutant avec de grosses bases. Est-ce que c’est envisageable avec les bases actuelles ? Elles font cela et beaucoup mieux les doigts dans le nez ? Ou bien est-ce que certaines bases sont plus aptes à le faire que d’autres ?
Merci :)
SGBDO vs SGBDR une vieille histoire
Les premiers SGBDOs industriels ont vus le jour il y a plus de 12 ans, de cette génération il ne reste plus que Versant et (Poet) et dans une mondre mesure ObjectStore et Objectivity. Pour rappel Caché n'est pas vraiment un SGBDO mais une base de type NF2 (base de données de type Unidata ou VMark)Pourtant l'approche objet s'est imposé tant au niveau des langages que des méthodes et des produits ou frameworks, seul le stockage reste relationnel et le restera encore surement tres longtemps. Les critères de performance et de transpartence de la persistence (productivité en phase de développement et de maintenance) mis en avant par les éditeurs de SGBDO sont notoirement insuffisants pour faire basculer le marché et les retours d'expérience ne sont pas suffisament satisfaisants. Pourtant les performances peuvent être au rendez-vous, en effet un SGBDO est un SGBD réseau structuré par un modèle objet et il est évident que la navigation (pointeur) est plus rapide que la jointure (algo de trie) encore faut-il que les chemins soient prévus. Un SGBDO est donc bien adapté en terme de performance aux modèles complexes (beaucoup derelations entre classes et/objet) et peu aux applications de gestion traditionnelles. La performance va aussi dépendre du type d'applications (transactionnelle ou non, nombre d'objets, taille des objets) et de l'implémentation interne du SGBDO dans des proportions que l'on ne retrouve pas aujourd'hui entre les divers SGBDR sdu marché.
La transparence de la persistence est plus un argument marketing pour les grosses applications et va dépendre énormement des choix d'implémentation au niveau du produit (serveur d'objets, serveur de pages, granularité du verrouillage(objet vs page), modèle transartionnel (optimiste, pessimiste,transactions longues, transactions imbriquées, modèle objet du SGBDO lui-même).
Quelques problèmes liés à l'adoption des SGBDOs:
1) Manque de standard (L'ODMG (Binding C++ et Java, OQL) est plutôt un échec, SQL3 n'est pas objet et est complexe;
2) Interopérabilité entre les langages (C++ persistent, java persistent, modèle neutre (type O2C)
3) Evolution du schéma versus Modèle de classe de l'application à mettre en relation avec la problèmatique des vues
4) Langage de requêtes et optimiseur
5) Outils (les outils fonctionnent avec un SGBDR pas un SGBDO)
6) Administration et exploitation
7) Formation
8) Perennité